import Vue from 'vue'
import Vuex from 'vuex'

import axios from 'axios'
//1.导入外部包
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

export default new Vuex.Store({
  //2.配置为 vuex 的插件
  plugins:[createPersistedState()],
  state: {
    // 1.唯一存储数据的地方
    // token: localStorage.getItem('token') || ''
    token: '',
    userInfo:{}                                                                                                                                                                                                    
  },
  getters: {
  },
  //2.唯一同步更新数据的地方
  mutations: {
    updateToken(state,newToken){
      state.token = newToken
    },
    updateUserInfo(state,info){
      state.userInfo = info
    }
  },
  //3.实现异步更新的地方
  actions: {
    // context是store仓库的实例对象
    async initUserInfo(context){
      console.log(context,'initUserInfo');
      // 发送请求
      const {data:res} = await axios.get('/my/userinfo')
      console.log(res);
      //调用mutations里面的函数,传递数据,进行保存
      context.commit('updateUserInfo',res.data)
    }
  },
  modules: {
  }
})
